

// Ext.form.Field.prototype.msgTarget='side';

/*
 * qtip-当鼠标移动到控件上面时显示提示 title-在浏览器的标题显示，但是测试结果是和qtip一样的 under-在控件的底下显示错误提示
 * side-在控件右边显示一个错误图标，鼠标指向图标时显示错误提示. 默认值. id-[element id]错误提示显示在指定id的HTML元件中
 */

/**
 * 编辑用户信息
 * 
 * @param {}
 *            id 用户ID
 * @param {}
 *            name 用户姓名
 */
function useradd() {
	var userBaseForm = new Ext.FormPanel({
		labelWidth : 75,
		border : false,
		width : 350,

		items : {
			xtype : 'tabpanel',
			activeTab : 0,
			border : false,
			defaults : {
				autoHeight : true,
				bodyStyle : 'padding:10px'
			},
			items : [{
				title : '基本信息',
				layout : 'form',
				defaults : {
					width : 230
				},
				defaultType : 'textfield',

				items : [{
							fieldLabel : '姓名',
							name : 'uname',
							emptyText : '请输入用户名',
							allowBlank : false
						}, {
							fieldLabel : '登录ID',
							vtype : 'alphanum',
							allowBlank : false,
							emptyText : '请输入登录ID',
							name : 'logid'
						}, {
							fieldLabel : '登录密码',
							inputType : 'password',
							allowBlank : false,
							id : 'pwd',
							name : 'pwd'
						}, {
							fieldLabel : '密码确认',
							inputType : 'password',
							allowBlank : false,
							id : 'pwd1',
							name : 'pwd1',
							vtype : "password",
							confirmTo : "pwd"
						}, new Ext.form.RadioGroup({
							fieldLabel : "性别",
							// //RadioGroup.fieldLabel 标签与
							// Radio.boxLabel 标签区别
							items : [new Ext.form.Radio({ // 三个必须项
										id : "branch0",
										// checked : true, //
										// 设置当前为选中状态,仅且一个为选中.
										boxLabel : "女", // Radio标签
										name : "sex", // 用于form提交时传送的参数名
										inputValue : "女", // 提交时传送的参数值
										checked : 'checked',
										listeners : {
											check : function(checkbox, checked) { // 选中时,调用的事件
												if (checked) {

												}
											}
										}
									}), new Ext.form.Radio({ // 以上相同
										id : "branch1",
										boxLabel : "男",
										name : "sex",
										inputValue : "男",
										listeners : {
											check : function(checkbox, checked) {
												if (checked) {

												}
											}
										}
									})]
						}), new Ext.form.DateField({
									id : 'birthday',
									name : 'birthday',
									format : 'Y-m-d',
									fieldLabel : '生日'
								}), {
							fieldLabel : '电话',
							name : 'uphone'
						}, {
							fieldLabel : '邮箱',
							vtype : "email",
							vtypeText : "请输入正确的邮箱地址",
							name : 'uemail'
						}]
			}, {
				title : '详细信息',
				layout : 'form',
				defaults : {
					width : 230
				},
				defaultType : 'textfield',

				items : [
						{
							fieldLabel : '用户编码',
							name : 'unumber'
						},
						getGroupSelectCombo('所在组/部门', 'gid', 'gname', ''),
						{
							xtype : 'hidden',
							id : 'gid',
							name : 'gid'
						},
						getWBComboStore('user-rating', '', 'grating_', '级别',
								'rating', null, '0'),
						{
							xtype : 'hidden',
							name : 'rating',
							id : 'rating'
						},
						getWBComboStore('job', '', 'job_', '职务', 'job', null,
								''), {
							xtype : 'hidden',
							name : 'job',
							id : 'job'
						}, {
							fieldLabel : '排序',
							regex : /^[1-9]\d*$/,
							regexText : "只能正整数字!",
							name : 'disporder',
							value : '99'
						}]
			}]
		}
	});

	var addUserWin = new Ext.Window({
				renderTo : Ext.getBody(),
				id : 'addUserWin',
				layout : 'fit',
				width : 500,
				height : 400,
				title : '用户注册',
				plain : true,
				modal : true,

				items : [userBaseForm],

				buttons : [{
					id : 'userSaveButton',
					text : '提 交',
					handler : function() {
						if (userBaseForm.getForm().isValid()) {

							Ext.MessageBox.wait('提交保存过程中...');

							userBaseForm.getForm().submit({
								url : context + '/system/user.do?method=save',
								method : "POST",
								params : countUserGroupItem(),
								success : function(form, action) {
									Ext.MessageBox.hide();
									Ext.getCmp("userSaveButton")
											.setDisabled(false);
									Ext.MessageBox.confirm('提示',
											'已成功注册用户信息，要继续注册新的用户吗？',
											keepAddUser);
								},
								failure : function(form, action) {
									Ext.MessageBox.hide();
									Ext.getCmp("userSaveButton")
											.setDisabled(false);
									if (action.result.errCode == '-1') {
										Ext.Msg.alert('提示', '提交保存用户信息发生错误！');
									} else if (action.result.errCode == '0') {
										Ext.Msg.alert('提示', '登录ID必须设置！');
									} else if (action.result.errCode == '1') {
										Ext.Msg.alert('提示', '登录ID重复，请重新定义！');
									} else {
										Ext.Msg.alert('提示', '未知的错误异常！');
									}
								}
							});
						} else {
							Ext.Msg.alert('提示', '基本信息和详细信息都存在必须输入的内容，请仔细输入！');
						}
					}
				}, {
					text : '关 闭',
					handler : function() {
						addUserWin.close();
						addUserWin = null;
					}
				}]
			});

	addUserWin.show(this);
}

/**
 * 计算关联组设置
 */
function countUserGroupItem() {
	var paramsJson = {
		gid_0 : Ext.getCmp("gid").getValue(),
		upt_0 : '',
		upj_0 : Ext.getCmp("job").getValue(),
		upr_0 : Ext.getCmp("rating").getValue(),
		upo_0 : '',
		countP : parseCounterName(1)
	}

	return paramsJson;
}

function keepAddUser(btn) {
	if (btn == 'yes') {
		Ext.getCmp('addUserWin').close();
		useradd();
	} else {
		Ext.getCmp('addUserWin').close();
	}

	reloadUserListStore();
}